﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Collections;
using Interfaces;

namespace Model
{
    public class Arbejdslog : IArbejdslogdata
    {
        // Attributter
        private int arbejdslogID;
        private DateTime starttidspunkt;
        private DateTime sluttidspunkt;
        private int tid; // Minutter
        private string note;
        private bool aktiv;

        // Associering
        private Projekt mitProjekt;
        private List<Medarbejder> mineMedarbejdere;

        // Konstruktør
        public Arbejdslog(int arbejdslogID, DateTime starttidspunkt, DateTime sluttidspunkt, int tid, string note, bool aktiv)
        {
            this.arbejdslogID = arbejdslogID;
            this.starttidspunkt = starttidspunkt;
            this.sluttidspunkt = sluttidspunkt;
            this.tid = tid;
            this.note = note;
            this.aktiv = aktiv;

            mitProjekt = null;
            mineMedarbejdere = new List<Medarbejder>();
        }

        #region Associeringsmetoder

        // Metode til at associere et projekt-objekt til et arbejdslog-objekt
        public void TilknytProjekt(Projekt etProjekt)
        {
            mitProjekt = etProjekt;
        }

        // Metode til at hente det associerede projektobjekt
        public Projekt GetMitProjekt()
        {
            return mitProjekt;
        }

        // Metode til at associere et medarbejder-objekt til et arbejdslogobjekt
        public void TilknytMedarbejder(Medarbejder enMedarbejder)
        {
            mineMedarbejdere.Add(enMedarbejder);
        }

        // Meteode til at hente liste af associerede medarbejdere
        public IEnumerator GetMineMedarbejdere()
        {
            return mineMedarbejdere.GetEnumerator();
        }

        #endregion

        #region Properties

        public int ArbejdslogID
        {
            get { return arbejdslogID; }
            set { arbejdslogID = value; }
        }
        public DateTime Starttidspunkt
        {
            get { return starttidspunkt; }
            set { starttidspunkt = value; }
        }
        public DateTime Sluttidspunkt
        {
            get { return sluttidspunkt; }
            set { sluttidspunkt = value; }
        }
        public int Tid
        {
            get { return tid; }
            set { tid = value; }
        }
        public string Note
        {
            get { return note; }
            set { note = value; }
        }
        public bool Aktiv
        {
            get { return aktiv; }
            set { aktiv = value; }
        }

        #endregion
    }
}
